Add some more tests.
authorMatthias Clasen <mclasen@redhat.com>
Fri, 29 Apr 2005 15:24:30 +0000 (15:24 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 29 Apr 2005 15:24:30 +0000 (15:24 +0000)
2005-04-29  Matthias Clasen  <mclasen@redhat.com>

* tests/testiconview.c: Add some more tests.

* gtk/gtkiconview.c (gtk_icon_view_select_path): Don't crash
if the path does not point to a row in the model.  (#300909,
Mathias Hasselmann)
(gtk_icon_view_rows_reordered): Re-layout here.  (#301009,
Mathias Hasselmann)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gtk/gtkiconview.c
tests/testiconview.c

index 931f0cbe27024c4f6b580917489deeb6445fd106..759bc0401012dd6839f2629565b366877b4320b1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,12 @@
 2005-04-29  Matthias Clasen  <mclasen@redhat.com>
 
+       * tests/testiconview.c: Add some more tests.
+
        * gtk/gtkiconview.c (gtk_icon_view_select_path): Don't crash
        if the path does not point to a row in the model.  (#300909,
        Mathias Hasselmann)
+       (gtk_icon_view_rows_reordered): Re-layout here.  (#301009, 
+       Mathias Hasselmann)
 
        * tests/testtext.c: Add some more attribute tests.
 
index 931f0cbe27024c4f6b580917489deeb6445fd106..759bc0401012dd6839f2629565b366877b4320b1 100644 (file)
@@ -1,8 +1,12 @@
 2005-04-29  Matthias Clasen  <mclasen@redhat.com>
 
+       * tests/testiconview.c: Add some more tests.
+
        * gtk/gtkiconview.c (gtk_icon_view_select_path): Don't crash
        if the path does not point to a row in the model.  (#300909,
        Mathias Hasselmann)
+       (gtk_icon_view_rows_reordered): Re-layout here.  (#301009, 
+       Mathias Hasselmann)
 
        * tests/testtext.c: Add some more attribute tests.
 
index 931f0cbe27024c4f6b580917489deeb6445fd106..759bc0401012dd6839f2629565b366877b4320b1 100644 (file)
@@ -1,8 +1,12 @@
 2005-04-29  Matthias Clasen  <mclasen@redhat.com>
 
+       * tests/testiconview.c: Add some more tests.
+
        * gtk/gtkiconview.c (gtk_icon_view_select_path): Don't crash
        if the path does not point to a row in the model.  (#300909,
        Mathias Hasselmann)
+       (gtk_icon_view_rows_reordered): Re-layout here.  (#301009, 
+       Mathias Hasselmann)
 
        * tests/testtext.c: Add some more attribute tests.
 
index d692aa5353301b29259cd61c0818bdbb81450793..568e9ca9a0ee8898276ca6deb86f1886c1dccd7b 100644 (file)
@@ -2546,6 +2546,8 @@ gtk_icon_view_rows_reordered (GtkTreeModel *model,
   g_list_free (icon_view->priv->items);
   icon_view->priv->items = items;
 
+  gtk_icon_view_queue_layout (icon_view);
+
   verify_items (icon_view);  
 }
 
index 988864bda9614e5184d66400316553bcda3dc21e..9d53083e19b54c904d9fa0f758babd85d8eb0e2b 100644 (file)
@@ -63,7 +63,7 @@ fill_model (GtkTreeModel *model)
       g_free (str2);
       i++;
     }
-
+  
   gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), 2, GTK_SORT_ASCENDING);
 }
 
@@ -103,6 +103,21 @@ foreach_selected_remove (GtkWidget *button, GtkIconView *icon_list)
 }
 
 
+static void
+swap_rows (GtkWidget *button, GtkIconView *icon_list)
+{
+  GtkTreeIter iter, iter2;
+  GtkTreeModel *model;
+
+  model = gtk_icon_view_get_model (icon_list);
+  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), -2, GTK_SORT_ASCENDING);
+
+  gtk_tree_model_get_iter_first (model, &iter);
+  iter2 = iter;
+  gtk_tree_model_iter_next (model, &iter2);
+  gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &iter2);
+}
+
 static void
 add_n_items (GtkIconView *icon_list, gint n)
 {
@@ -217,6 +232,15 @@ select_all (GtkWidget *button, GtkIconView *icon_list)
   gtk_icon_view_select_all (icon_list);
 }
 
+static void
+select_nonexisting (GtkWidget *button, GtkIconView *icon_list)
+{  
+  GtkTreePath *path = gtk_tree_path_new_from_indices (999999, -1);
+  gtk_icon_view_select_path (icon_list, path);
+  gtk_tree_path_free (path);
+  gtk_icon_view_select_all (icon_list);
+}
+
 static void
 unselect_all (GtkWidget *button, GtkIconView *icon_list)
 {
@@ -404,6 +428,10 @@ main (gint argc, gchar **argv)
   g_signal_connect (button, "clicked", G_CALLBACK (foreach_selected_remove), icon_list);
   gtk_box_pack_start_defaults (GTK_BOX (bbox), button);
 
+  button = gtk_button_new_with_label ("Swap");
+  g_signal_connect (button, "clicked", G_CALLBACK (swap_rows), icon_list);
+  gtk_box_pack_start_defaults (GTK_BOX (bbox), button);
+
   bbox = gtk_hbutton_box_new ();
   gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_START);
   gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0);
@@ -416,6 +444,10 @@ main (gint argc, gchar **argv)
   g_signal_connect (button, "clicked", G_CALLBACK (unselect_all), icon_list);
   gtk_box_pack_start_defaults (GTK_BOX (bbox), button);
   
+  button = gtk_button_new_with_label ("Select nonexisting");
+  g_signal_connect (button, "clicked", G_CALLBACK (select_nonexisting), icon_list);
+  gtk_box_pack_start_defaults (GTK_BOX (bbox), button);
+
   gtk_paned_pack1 (GTK_PANED (paned), vbox, TRUE, FALSE);
 
   icon_list = gtk_icon_view_new ();